# 1.集合的创建
a = {1}
print(type(a))  # set
a = {}  # 会被认为是字典
print(type(a))  # dict
# 集合中只能存储不可变数据
# 不能存可变数据：列表、集合、字典
# b = {1, 'a', [1, 3, 5], (4, 6, 8)}  # unhashable type: 'list'
# b = {1, 'a', (1, 3, 5), (4, 6, 8), { 'a', 'b', 'c' }}  # unhashable type: 'set'
b = {1, 'a', (1, 3, 5), (4, 6, 8)}
print(type(b))

# set函数创建
c = set([1, 2, 3, 4, 3])  # 转换成集合类型，会去除重复
print(c)
c = set((4, 5, 6, 6, 5, 4))  # 转换成集合类型，会去除重复
print(c)
c = set('Hello World')  # 去除重复的字符
print(c)

# 2.集合的常用操作
d = set()
# 添加
d.add(1)
d.add(1)
print(d)
d.add('abc')
print(d)
# 删除
# d.remove(2)  # 报错
d.discard(2)
d.discard('abc')
print(d)  # {1}
d = {1}
e = {5, 6}
# False，有交叉项；True：没有交叉项
print(e.isdisjoint(d))

# 3.集合的推导式
g = {1, 3, 5, 7, 9, 11}
print({temp for temp in g if temp <= 10})

